; ModuleID = 'sctest.bc'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
target triple = "i386-pc-linux-gnu"

define i32 @f(float %h, float %x) nounwind {
entry:
  %h_addr = alloca float, align 4
  %x_addr = alloca float, align 4
  %retval = alloca i32
  %0 = alloca i32
  %a = alloca float
  %b = alloca float
  %k = alloca i32
  %"alloca point" = bitcast i32 0 to i32
  store float %h, float* %h_addr
  store float %x, float* %x_addr
  store float 0.000000e+00, float* %a, align 4
  store float 1.000000e+00, float* %b, align 4
  store i32 1, i32* %k, align 4
  br label %bb

bb:                                               ; preds = %bb, %entry
  %1 = load float* %a, align 4
  %2 = load float* %b, align 4
  %3 = fadd float %1, %2
  store float %3, float* %a, align 4
  %4 = load float* %h_addr, align 4
  %5 = fsub float -0.000000e+00, %4
  %6 = load float* %x_addr, align 4
  %7 = fmul float %5, %6
  %8 = load float* %b, align 4
  %9 = fmul float %7, %8
  %10 = load i32* %k, align 4
  %11 = sitofp i32 %10 to float
  %12 = fdiv float %9, %11
  store float %12, float* %b, align 4
  %13 = load i32* %k, align 4
  %14 = add nsw i32 %13, 1
  store i32 %14, i32* %k, align 4
  %15 = load float* %b, align 4
  %16 = call float @fabsf(float %15) nounwind readnone
  %17 = fpext float %16 to double
  %18 = fcmp ogt double %17, 1.000000e-10
  br i1 %18, label %bb, label %bb1

bb1:                                              ; preds = %bb
  %19 = load float* %a, align 4
  %20 = fptosi float %19 to i32
  store i32 %20, i32* %0, align 4
  %21 = load i32* %0, align 4
  store i32 %21, i32* %retval, align 4
  br label %return

return:                                           ; preds = %bb1
  %retval2 = load i32* %retval
  ret i32 %retval2
}

declare float @fabsf(float)
